Найти в массиве элемент который встречается больше всего раз. Двумерный массив сформировать рандомом от 0 до 9 — Delphi(Делфи)

uses crt;
var
  a: array [1 .. 10,1 .. 10] of integer;
  i, j, k, d, n, mx, obr, sr: byte;
begin
  Randomize;
  write('rezmer - '); readln(n);
  writeln('==============');
  for i:=1 to n do
  begin
    for j:=1 to n do
    begin
      a[i,j]:=random(10);
      write(a[i,j],'  ');
    end;
    writeln;
  end;
  writeln('==============');
 
   obr:=0;
  for i:=1 to n do
  for j:=1 to n do
    begin
     mx:=0;
     for k:=1 to n do
     for d:=1 to n do
     if a[i,j]=a[k,d] then mx:=mx+1;
     if (mx>obr) then
      begin
       sr:=a[i,j];
       obr:=mx;
      end;
    end;
write('Максимальное количество раз встречается элемент ', sr);
end.

Следующий вариант

uses crt;
const nmax=20;
type mas=array[1..nmax,1..nmax] of integer;
function Max(a:mas;n,m:byte):integer;
var i,j:byte;
    mx:integer;
begin
mx:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if a[i,j]>mx then mx:=a[i,j];
Max:=mx;
end;
function Min(a:mas;n,m:byte):integer;
var i,j:byte;
    mn:integer;
begin
mn:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if a[i,j]<mn then mn:=a[i,j];
Min:=mn;
end;
function Chast(a:mas;n,m:byte):integer;
var i,j,k,c,d,mx:byte;
    ch:integer;
begin
mx:=1;ch:=a[1,1];
for i:=1 to n do
for j:=1 to m do
 begin
  k:=0;
  for c:=1 to n do
  for d:=1 to m do
  if a[c,d]=a[i,j] then k:=k+1;
  if k>mx then
   begin
    ch:=a[i,j];
    mx:=k;
   end;
 end;
Chast:=ch;
end;
 
var a:mas;
    n,m,i,j:byte;
begin
clrscr;
Randomize;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=random(10);
    write(a[i,j]:3);
   end;
  writeln;
 end;
writeln;
writeln('Наиболее частое число=',Chast(a,n,m));
writeln('Минимум=',Min(a,n,m));
writeln('Максимум=',Max(a,n,m));
readln
end.

Leave a Comment

+ 20 = 21